package br.com.unirio.formula1.modelo.fabrica;

import br.com.unirio.formula1.modelo.Corrida;
import br.com.unirio.formula1.util.exception.ExcecaoDeModelo;

/**
 * Classe estatica responsavel por retornar instancias de corridas ({@link Corrida}) realizando as devidas validacoes.
 * 
 * @author Victor
 * 
 */
public class FabricaCorrida
{

    public FabricaCorrida()
    {

    }

    public static Corrida criaCorrida(String idCorrida, String nomeCorrida, String data, String voltasPrevistas)
	    throws ExcecaoDeModelo
    {
	int voltas = Integer.parseInt(voltasPrevistas);
	verificaVoltasPrevistas(voltas);
	int id = Integer.parseInt(idCorrida);
	return new Corrida(id, voltas, nomeCorrida, data);
    }

    private static void verificaVoltasPrevistas(int voltasPrevistas) throws ExcecaoDeModelo
    {
	if (voltasPrevistas < 0)
	    throw new ExcecaoDeModelo("FabricaCorrida.voltasNegativas");

    }
}
